home *** CD-ROM | disk | FTP | other *** search
- /* defines and type declarations to access the */
- /* lance of Riebl Card Plus */
-
- #define u_char unsigned char
- #define u_short unsigned short
- #define u_long unsigned long
-
- typedef u_char HADDR[6]; /* 6-byte hardware address of lance */
-
- #define DRX 0x0001
- #define DTX 0x0002
- #define LOOP 0x0004
- #define DTCR 0x0008
- #define COLL 0x0010
- #define DRTY 0x0020
- #define INTL 0x0040
- #define PROM 0x8000
-
- typedef struct /* pointer to descriptor ringbuffer */
- {
- u_short drp_lo;
- u_char len;
- u_char drp_hi;
- } DRP;
-
-
- typedef struct lnc_init /* initblock of lance */
- {
- u_short mode; /* mode word */
- HADDR haddr; /* hardware address of lance */
- long laf[2]; /* logical adress filter */
- DRP rdrp; /* receive ring descr. pointer */
- DRP tdrp; /* xmit ring descr. pointer */
- } LNCINIT;
-
-
-
- typedef struct /* transmit message descriptor block */
- {
- u_short ladr; /* TMD0 */
- u_short tmd1;
- u_short tmd2;
- u_short tmd3;
- } TMD;
-
- /* TMD1 */
- #define ENP 0x0100
- #define STP 0x0200
- #define DEF 0x0400
- #define ONE 0x0800
- #define MORE 0x1000
- #define ERR 0x4000
- #define OWN 0x8000
-
- #define OWN_CHIP OWN
- #define OWN_HOST !OWN
-
- #define TDR 0x03FF /* TMD3 */
- #define RTRY 0x0400
- #define LCAR 0x0800
- #define LCOL 0x1000
- #define UFLO 0x4000
- #define BUFF3 0x8000
-
- typedef struct /* receive message descriptor block */
- {
- u_short ladr; /* RMD0 */
- u_short rmd1;
- u_short rmd2;
- int mcnt; /* RMD3 */
- } RMD;
-
- /* RMD1 + bits in tmd1 */
- #define BUFF 0x0400
- #define CRC 0x0800
- #define OFLO 0x1000
- #define FRAM 0x2000
-
- #define BCNT 0x0FFF /* RMD2 */
- #define ONES 0xF000
-
-
- #define CSR0 0 /* register address in register address port */
- #define CSR1 1
- #define CSR2 2
- #define CSR3 3
-
-
- #define CSR0_INIT 0x0001 /* bits of CSR0 */
- #define CSR0_STRT 0x0002
- #define CSR0_STOP 0x0004
- #define CSR0_TDMD 0x0008
- #define CSR0_TXON 0x0010
- #define CSR0_RXON 0x0020
- #define CSR0_INEA 0x0040
- #define CSR0_INTR 0x0080
- #define CSR0_IDON 0x0100
- #define CSR0_TINT 0x0200
- #define CSR0_RINT 0x0400
- #define CSR0_MERR 0x0800
- #define CSR0_MISS 0x1000
- #define CSR0_CERR 0x2000
- #define CSR0_BABL 0x4000
- #define CSR0_ERR 0x8000
-
- #define CSR3_BCON 0x0001 /* bits of CSR3 */
- #define CSR3_ACON 0x0002
- #define CSR3_BSWP 0x0004
-
-
- #ifdef MEGA_STE
-
- #define RCP_RDP (int *)0xC0FFF0L /* register data port addr */
- #define RCP_RAP (int *)0xC0FFF2L /* register address port addr */
- #define LANCEIVEC 0x50
- #define RCP_MEMBOT (char *)0xC10000L /* start of memory on rieblcard */
-
- #else
-
- #ifdef ATARI_TT
-
- #define RCP_RDP (int *)0xFE00FFF0L /* register data port addr */
- #define RCP_RAP (int *)0xFE00FFF2L /* register address port addr */
- #define LANCEIVEC 0x50
- #define RCP_MEMBOT (char *)0xFE010000L /* start of memory on rieblcard */
-
- #else
-
- #define RCP_RDP (int *)0xFF7000L /* register data port addr */
- #define RCP_RAP (int *)0xFF7002L /* register address port addr */
- #define LANCEIVEC 0x1d
- #define RCP_MEMBOT (char *)0xE00000L /* start of memory on rieblcard */
-
- #endif
- #endif
-
- #define RECVBUFFS 16 /* max number of received packets */
- #define XMITBUFFS 1 /* max number of unsent packets */
- #define RECVRLEN (0x04 << 5)
- #define XMITRLEN 0
-
-
- #define MAXPKTLEN 1518
-
- #define write_register(r,v) *RCP_RAP=(r);*RCP_RDP=(v)
- #define read_register(r,v) *RCP_RAP=r;v=*RCP_RDP
-
- typedef struct
- {
- HADDR et_dest;
- HADDR et_src;
- u_short et_type;
- char et_data[MAXPKTLEN-14];
- } PKTBUF;
-
-
- typedef struct
- {
- LNCINIT init;
- TMD tmd; /* transmit descriptor blocks */
- RMD rmd[RECVBUFFS]; /* receive descriptor blocks */
- } LNCMEM;
-
-
- #define MAXPKT 40
- #define INIT ((LNCMEM *)RCP_MEMBOT)->init
- #define PRMD (((LNCMEM *)RCP_MEMBOT)->rmd)
- #define PTMD ((LNCMEM *)RCP_MEMBOT)->tmd
- #define PPKT (PKTBUF *)(RCP_MEMBOT + sizeof(LNCMEM))
- #define PPOOL (PKTPOOL *)(RCP_MEMBOT+sizeof(LNCMEM)+sizeof(PKTBUF)*MAXPKT)
-
-
-